///**
// * AUTO_COPYRIGHT_SUB_TAG
// */
//package com.rim.samples.device.push;
//
//import net.rim.device.api.util.*;
//
///**
// * Simplified logger to ease the debugging process.
// */
//public class RimLogger {
//    
//    private static final int LOG_ITEM_LIMIT = 250;
//
//    public static void log( String str ) {
//        append( str, false );
//    }
//
//    public static void warn( String str ) {
//        append( str, true );
//    }
//
//    public static void clear() {
//        PersistentStorage.setLog( new LogMessages() );
//        populateLogScreen();
//    }
//
//    public static void populateLogScreen() {
//        PushUtils.runOnEventThread( new Runnable() {
//            public void run() {
//                LogMessages log = PersistentStorage.getLog();
//                if( log == null ) {
//                    return;
//                }
//                String[] messages;
//                boolean[] warnings;
//                synchronized( log ) {
//                    messages = log.copyMessages();
//                    warnings = log.copyWarnings();
//                }
//                //PushMain.getLogScreen().populate( messages, warnings );
//            }
//        } );
//    }
//
//    private static void append( String str, boolean warning ) {
//        if( warning ) {
//            System.err.println( str );
//        } else {
//            System.out.println( str );
//        }
//        if(str.length() > LOG_ITEM_LIMIT) {
//            str = str.substring( 0, LOG_ITEM_LIMIT ) + "...";
//        }
//        LogMessages log = PersistentStorage.getLog();
//        if( log == null ) {
//            log = new LogMessages();
//        }
//        log.append( str, warning );
//        PersistentStorage.setLog( log );
//
//        populateLogScreen();
//    }
//
//    public static class LogMessages implements Persistable {
//
//        private static final int QUEUE_SIZE = 20;
//
//        private String[] messages;
//        private boolean[] warnings;
//
//        public LogMessages() {
//            this.messages = new String[ QUEUE_SIZE ];
//            this.warnings = new boolean[ QUEUE_SIZE ];
//        }
//
//        public synchronized void append( String str, boolean warning ) {
//            System.arraycopy( messages, 0, messages, 1, messages.length - 1 );
//            System.arraycopy( warnings, 0, warnings, 1, warnings.length - 1 );
//            messages[ 0 ] = str;
//            warnings[ 0 ] = warning;
//        }
//
//        public synchronized String[] copyMessages() {
//            String[] result = new String[ QUEUE_SIZE ];
//            System.arraycopy( messages, 0, result, 0, messages.length );
//            return result;
//        }
//
//        public synchronized boolean[] copyWarnings() {
//            boolean[] result = new boolean[ QUEUE_SIZE ];
//            System.arraycopy( warnings, 0, result, 0, warnings.length );
//            return result;
//        }
//
//    }
//
//}
